package edu.hitsz.aircraft;

import edu.hitsz.application.ImageManager;
import edu.hitsz.application.Main;
import edu.hitsz.bullet.BaseBullet;
import edu.hitsz.bullet.HeroBullet;
import edu.hitsz.shootStrategy.ShootDirect;
import edu.hitsz.shootStrategy.ShootStrategy;

import java.util.LinkedList;
import java.util.List;

/**
 * 英雄飞机，游戏玩家操控
 * @author hitsz
 */
public class HeroAircraft extends AbstractAircraft {

    /**
     * @param locationX 英雄机位置x坐标
     * @param locationY 英雄机位置y坐标
     * @param speedX 英雄机射出的子弹的基准速度（英雄机无特定速度）
     * @param speedY 英雄机射出的子弹的基准速度（英雄机无特定速度）
     * @param hp    初始生命值
     */
    //单例模式
    private static HeroAircraft heroAircraft = new HeroAircraft(
            Main.WINDOW_WIDTH / 2,
            Main.WINDOW_HEIGHT - ImageManager.HERO_IMAGE.getHeight() ,
            0, -2, 10000
    );

    private HeroAircraft(int locationX, int locationY, int speedX, int speedY, int hp) {
        super(locationX, locationY, speedX, speedY, hp);
        super.shootNum=1;
        super.direction=-1;
        super.power=30;

        super.setShootStrategy(new ShootDirect());
    }

    public static HeroAircraft getInstance(){
        return heroAircraft;
    }

    public void setShootNum(int shootNum) {
        this.shootNum = shootNum;
    }

    public void setPower(int power) {
        this.power = power;
    }

    @Override
    public void forward() {
        // 英雄机由鼠标控制，不通过forward函数移动
    }


    /**
     * 获得bloodProp，补充血量
     * @return void
     */
    public void gainBloodProp(){
        if(this.hp+50<this.maxHp) {
            hp+=50;
        }else {
            this.hp=maxHp;
        }
    }


}
